2025-03-30 23:47:24,235 - INFO - Num classes: 3
2025-03-30 23:53:22,106 - INFO - Class weights: tensor([0.6006, 2.8061, 1.0217], device='cuda:0')
2025-03-30 23:53:22,108 - INFO - Model architecture:
HyperspectralLogisticRegressionModel(
  (linear): Sequential(
    (0): LinearBlock(
      (block): Sequential(
        (0): Linear(in_features=1080, out_features=20, bias=True)
        (1): BatchNorm1d(20, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): LeakyReLU(negative_slope=0.1)
        (3): Dropout(p=0.0, inplace=False)
      )
    )
    (1): LinearBlock(
      (block): Sequential(
        (0): Linear(in_features=20, out_features=20, bias=True)
        (1): BatchNorm1d(20, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): LeakyReLU(negative_slope=0.1)
        (3): Dropout(p=0.0, inplace=False)
      )
    )
    (2): Linear(in_features=20, out_features=3, bias=True)
  )
)
2025-03-30 23:53:22,108 - INFO - Using cuda device
2025-03-31 00:23:53,186 - INFO - Num classes: 3
2025-03-31 00:29:44,304 - INFO - Class weights: tensor([0.6006, 2.8061, 1.0217], device='cuda:0')
2025-03-31 00:29:44,307 - INFO - Model architecture:
HyperspectralLogisticRegressionModel(
  (linear): Sequential(
    (0): LinearBlock(
      (block): Sequential(
        (0): Linear(in_features=1080, out_features=20, bias=True)
        (1): BatchNorm1d(20, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): LeakyReLU(negative_slope=0.1)
        (3): Dropout(p=0.0, inplace=False)
      )
    )
    (1): LinearBlock(
      (block): Sequential(
        (0): Linear(in_features=20, out_features=20, bias=True)
        (1): BatchNorm1d(20, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): LeakyReLU(negative_slope=0.1)
        (3): Dropout(p=0.0, inplace=False)
      )
    )
    (2): Linear(in_features=20, out_features=3, bias=True)
  )
)
2025-03-31 00:29:44,307 - INFO - Using cuda device
2025-03-31 00:38:55,599 - INFO - Epoch: 0/100. Training time: 363.352
2025-03-31 00:38:55,601 - INFO - Training Metrics...
2025-03-31 00:38:55,601 - INFO - {'loss': 0.9760768106029292, 'f1': 50.075462137533734, 'acc': 56.65159276290134, 'precision': 52.601227260952335, 'recall': 53.694293716867534, 'balanced acc': 53.694293716867534}
2025-03-31 00:38:55,601 - INFO - Validation Metrics... Inference time: 187.935
2025-03-31 00:38:55,601 - INFO - {'loss': 0.866154595827445, 'f1': 51.78299232021553, 'acc': 64.62470054127421, 'precision': 55.43699916743198, 'recall': 58.70097743070397, 'balanced acc': 58.70097743070397}
2025-03-31 00:38:55,601 - INFO - ==================================================
2025-03-31 01:25:35,355 - INFO - Epoch: 5/100. Training time: 368.467
2025-03-31 01:25:35,358 - INFO - Training Metrics...
2025-03-31 01:25:35,359 - INFO - {'loss': 0.8106492996975115, 'f1': 59.35313526441248, 'acc': 66.4166846077603, 'precision': 60.66325977660815, 'recall': 63.90992552526369, 'balanced acc': 63.90992552526369}
2025-03-31 01:25:35,359 - INFO - Validation Metrics... Inference time: 191.085
2025-03-31 01:25:35,359 - INFO - {'loss': 0.7048668081943805, 'f1': 59.45276836351066, 'acc': 72.61439732142857, 'precision': 64.87206862030173, 'recall': 68.29777868977894, 'balanced acc': 68.29777868977894}
2025-03-31 01:25:35,359 - INFO - ==================================================
2025-03-31 02:12:10,760 - INFO - Epoch: 10/100. Training time: 369.723
2025-03-31 02:12:10,762 - INFO - Training Metrics...
2025-03-31 02:12:10,763 - INFO - {'loss': 0.7711891243412237, 'f1': 62.14989362087159, 'acc': 68.83672656960873, 'precision': 64.09822806384409, 'recall': 67.46262290260282, 'balanced acc': 67.46262290260282}
2025-03-31 02:12:10,763 - INFO - Validation Metrics... Inference time: 193.440
2025-03-31 02:12:10,763 - INFO - {'loss': 0.6188680285062546, 'f1': 61.72553465845054, 'acc': 75.5315647893773, 'precision': 65.47349620621532, 'recall': 68.90588452153607, 'balanced acc': 68.90588452153607}
2025-03-31 02:12:10,763 - INFO - ==================================================
2025-03-31 02:58:32,721 - INFO - Epoch: 15/100. Training time: 366.174
2025-03-31 02:58:32,724 - INFO - Training Metrics...
2025-03-31 02:58:32,724 - INFO - {'loss': 0.7330283974386325, 'f1': 63.769071035321, 'acc': 72.18560095216431, 'precision': 65.2524448794027, 'recall': 68.68518945373415, 'balanced acc': 68.68518945373415}
2025-03-31 02:58:32,724 - INFO - Validation Metrics... Inference time: 191.234
2025-03-31 02:58:32,724 - INFO - {'loss': 0.6140786241262387, 'f1': 63.07795588627742, 'acc': 76.6868826857666, 'precision': 66.52390861709114, 'recall': 69.26750832770703, 'balanced acc': 69.26750832770703}
2025-03-31 02:58:32,724 - INFO - ==================================================
2025-03-31 13:54:32,457 - INFO - Num classes: 3
2025-03-31 14:00:42,289 - INFO - Class weights: tensor([0.6006, 2.8061, 1.0217], device='cuda:0')
2025-03-31 14:00:42,293 - INFO - Model architecture:
HyperspectralLogisticRegressionModel(
  (linear): Sequential(
    (0): LinearBlock(
      (block): Sequential(
        (0): Linear(in_features=1080, out_features=20, bias=True)
        (1): BatchNorm1d(20, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): LeakyReLU(negative_slope=0.1)
        (3): Dropout(p=0.0, inplace=False)
      )
    )
    (1): LinearBlock(
      (block): Sequential(
        (0): Linear(in_features=20, out_features=20, bias=True)
        (1): BatchNorm1d(20, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): LeakyReLU(negative_slope=0.1)
        (3): Dropout(p=0.0, inplace=False)
      )
    )
    (2): Linear(in_features=20, out_features=3, bias=True)
  )
)
2025-03-31 14:00:42,293 - INFO - Using cuda device
2025-03-31 14:00:42,308 - INFO - Training parameters restored at epoch 12
2025-03-31 14:39:00,865 - INFO - Epoch: 15/100. Training time: 376.784
2025-03-31 14:39:00,865 - INFO - Training Metrics...
2025-03-31 14:39:00,865 - INFO - {'loss': 0.7416163800628321, 'f1': 63.48782609371446, 'acc': 71.66417522422982, 'precision': 64.94835208414173, 'recall': 68.45061314196832, 'balanced acc': 68.45061314196832}
2025-03-31 14:39:00,865 - INFO - Validation Metrics... Inference time: 190.794
2025-03-31 14:39:00,866 - INFO - {'loss': 0.5818235537944696, 'f1': 67.12089729577187, 'acc': 79.88871480082418, 'precision': 65.89788476552695, 'recall': 70.68709835444868, 'balanced acc': 70.68709835444868}
2025-03-31 14:39:00,866 - INFO - ==================================================
2025-03-31 15:26:22,634 - INFO - Epoch: 20/100. Training time: 385.920
2025-03-31 15:26:22,635 - INFO - Training Metrics...
2025-03-31 15:26:22,635 - INFO - {'loss': 0.7165473555303683, 'f1': 62.96617981662668, 'acc': 69.23927139526192, 'precision': 64.24166965787886, 'recall': 69.75605682169736, 'balanced acc': 69.75605682169736}
2025-03-31 15:26:22,635 - INFO - Validation Metrics... Inference time: 193.547
2025-03-31 15:26:22,635 - INFO - {'loss': 0.6140591914837177, 'f1': 63.52368641516853, 'acc': 76.18030685832025, 'precision': 64.39401821665017, 'recall': 70.65826960249701, 'balanced acc': 70.65826960249701}
2025-03-31 15:26:22,636 - INFO - ==================================================
2025-03-31 16:14:14,246 - INFO - Epoch: 25/100. Training time: 376.993
2025-03-31 16:14:14,247 - INFO - Training Metrics...
2025-03-31 16:14:14,247 - INFO - {'loss': 0.7288122674462142, 'f1': 63.5142515796466, 'acc': 70.29672114665931, 'precision': 64.39771505363079, 'recall': 69.2777619502823, 'balanced acc': 69.2777619502823}
2025-03-31 16:14:14,247 - INFO - Validation Metrics... Inference time: 189.507
2025-03-31 16:14:14,247 - INFO - {'loss': 0.6203443805376688, 'f1': 61.570614977371804, 'acc': 73.90743557038199, 'precision': 63.38766748451098, 'recall': 69.35997751696395, 'balanced acc': 69.35997751696395}
2025-03-31 16:14:14,247 - INFO - ==================================================
2025-03-31 17:01:34,353 - INFO - Epoch: 30/100. Training time: 377.625
2025-03-31 17:01:34,354 - INFO - Training Metrics...
2025-03-31 17:01:34,354 - INFO - {'loss': 0.753137963972274, 'f1': 62.01859669408606, 'acc': 70.23851837709606, 'precision': 62.8408658478355, 'recall': 67.32565074217382, 'balanced acc': 67.32565074217382}
2025-03-31 17:01:34,354 - INFO - Validation Metrics... Inference time: 190.450
2025-03-31 17:01:34,354 - INFO - {'loss': 0.5548631671147469, 'f1': 64.30705724761381, 'acc': 77.68301731750392, 'precision': 66.54515983865217, 'recall': 70.77541094459457, 'balanced acc': 70.77541094459457}
2025-03-31 17:01:34,354 - INFO - ==================================================
2025-03-31 17:49:13,412 - INFO - Epoch: 35/100. Training time: 379.391
2025-03-31 17:49:13,413 - INFO - Training Metrics...
2025-03-31 17:49:13,413 - INFO - {'loss': 0.6849053578012309, 'f1': 65.7978411997246, 'acc': 71.53261284609385, 'precision': 67.59227341627536, 'recall': 71.13915413095305, 'balanced acc': 71.13915413095305}
2025-03-31 17:49:13,413 - INFO - Validation Metrics... Inference time: 189.517
2025-03-31 17:49:13,413 - INFO - {'loss': 0.5084742980125623, 'f1': 65.98168564374582, 'acc': 80.58130253303244, 'precision': 68.50159672378767, 'recall': 69.87177681842667, 'balanced acc': 69.87177681842667}
2025-03-31 17:49:13,413 - INFO - ==================================================
2025-03-31 17:58:45,685 - INFO - Early stopping criterion met. Stopping training.
2025-03-31 17:58:46,360 - INFO - Initializing final Evaluations:

2025-03-31 18:01:58,143 - INFO - Final validation metrics:
{'f1': 67.46932318277649, 'acc': 79.88871480082418, 'precision': 65.79327136204361, 'recall': 71.47987466289933, 'balanced acc': 71.47987466289933}
2025-03-31 18:03:53,724 - INFO - Final test pixel-wise classification metrics:
{'f1': 68.34727186749792, 'acc': 73.05631776041068, 'precision': 69.73744616046325, 'recall': 68.5442644218587, 'balanced acc': 68.5442644218587}
2025-04-05 02:20:51,907 - INFO - Num classes: 3
2025-04-05 02:20:51,910 - INFO - Class weights: None
2025-04-05 02:20:52,031 - INFO - Model architecture:
HyperspectralLogisticRegressionModel(
  (linear): Sequential(
    (0): LinearBlock(
      (block): Sequential(
        (0): Linear(in_features=1080, out_features=20, bias=True)
        (1): BatchNorm1d(20, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): LeakyReLU(negative_slope=0.1)
        (3): Dropout(p=0.0, inplace=False)
      )
    )
    (1): LinearBlock(
      (block): Sequential(
        (0): Linear(in_features=20, out_features=20, bias=True)
        (1): BatchNorm1d(20, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): LeakyReLU(negative_slope=0.1)
        (3): Dropout(p=0.0, inplace=False)
      )
    )
    (2): Linear(in_features=20, out_features=3, bias=True)
  )
)
2025-04-05 02:20:52,032 - INFO - Using cuda device
2025-04-05 02:20:52,043 - INFO - Initializing final Evaluations:

